#ifndef BUNDLE_INFO_MESSAGE_H_
#define BUNDLE_INFO_MESSAGE_H_

#include "ariba/ariba.h"

using_serialization;


class BundleInfoMessage  : public ariba::Message
{
	VSERIALIZEABLE;
public:
	/// Default constructor, required for automatic de-serialization
	BundleInfoMessage();

	BundleInfoMessage(string key, string tag, string display_name, string path, uint64_t size, bool awaiting_ack);

	bool get_awaits_ack() const;
    string get_displayname() const;
    string get_key() const;
    string get_path() const;
    uint64_t get_size() const;
    string get_tag() const;


private:
	string key;
	string tag;
	string display_name;
	string path;   // TODO depricated?
	uint64_t size;
	uint8_t awaiting_ack;
};

sznBeginDefault(BundleInfoMessage, X)
{
    X && T(key) && T(tag) && T(display_name) && T(path) && size && awaiting_ack;
} sznEnd();

#endif /* BUNDLE_INFO_MESSAGE_H_ */
